//
//  ZQWBStatusListViewModel.swift
//  Timor微博
//
//  Created by 周周旗 on 2019/3/20.
//  Copyright © 2019 ZQ. All rights reserved.
//

import Foundation

/// 微博数据列表视图模型
/**
 父类的选择
 
 - 如果类需要使用 `KVC` 或者第三方字典转模型框架设置对象值， 类就需要继承自 `NSObject`
 - 如果类只是包装一些代码逻辑（只是写一些函数）,可以不用任何父类， 好处：更加轻量级
 - 提示： 如果用OC写， 一律继承 `NSObject`
 
 使命：
 1. 字典转模型
 2. 上拉/下拉刷新
 */


class ZQWBStatusListViewModel:NSObject {
    
    /// 微博模型数组懒加载
    lazy var statusList = [ZQWBStatus]()
    
    /// 加载微博列表
    /// - Parameter completion: 此处 isSuccess为网络请求是否成功
    func loadStatus(pullUp: Bool, completion:@escaping (_ isSuccess:Bool)->()) {
        /// 记录最新一条数据的id
        let since_id = pullUp ? 0: statusList.first?.id
        let max_id = pullUp ? statusList.last?.id : 0
        
        ZQNetWorkManager.shared.statusList(since_id: since_id ?? 0, max_id: max_id ?? 0) { (list, isSuccess) in
            //1. 字典转模型
            guard let arrary = NSArray.yy_modelArray(with: ZQWBStatus.self, json: list ?? []) as? [ZQWBStatus] else {
                completion(isSuccess)
                return
            }
            print("刷新到\(arrary.count)条数据")
            //2. 拼接数据
            if pullUp{
                self.statusList  += arrary
            }else{
                self.statusList = arrary + self.statusList
            }
            
            //3. 完成回调
            completion(isSuccess)
        }
    }
}



